1
迈向数值线性代数
MATH004Lesson 9
00:00
数值线性代数是现代计算的核心引擎,它弥合了符号数学之美与原始硬件性能之间的鸿沟。在理论层面,平移 $T(v) = v + v_0$ 被视为简单的加法运算,但计算机却将其视为对其优化的矩阵乘法流水线的干扰。为了实现最大速度,我们必须转变视角:通过扩展空间的维度,将“位移”转化为“结构化的乘法”。

1. 从加法到乘法

在理论框架中,线性变换和位移(仿射映射)通常被分别处理。然而,高性能库如 BLAS(基本线性代数子程序) 专门针对矩阵-向量和矩阵-矩阵乘积进行了优化。为了利用这些核心函数,我们将所有操作表示为:

$$T(v) = Av$$

2. 齐次坐标

要使用矩阵实现 $\mathbf{R}^n$ 中的位移,我们需要扩展到 $\mathbf{R}^{n+1}$。一个向量 $[x, y, z]^T$ 变为 $[x, y, z, 1]^T$。这个“额外的 1”使得位移可以编码在 $(n+1) \times (n+1)$ 矩阵的最后一列中。

增广结构

由 $v_0 = [t_x, t_y, t_z]^T$ 的平移表示为:

$$A = \begin{bmatrix} 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \end{bmatrix}$$

计算保真性

最后一行的数字 $0, 0, 0, 1$ 起着关键作用。当 $A$ 乘以一个末尾分量为 $1$ 的向量时,结果的末尾分量为:

$(0 \cdot x) + (0 \cdot y) + (0 \cdot z) + (1 \cdot 1) = 1$

这确保了数据的“仿射”性质得以保留,从而可以在不丢失坐标系完整性的情况下进行连续运算。

3. 实现标准:BLAS

数值效率依赖于标准化的子程序。 BLAS 提供了三个层次的操作:

  • Level 1: 向量-向量操作(例如,点积)。
  • Level 2: 矩阵-向量操作 ($Ax+b$)。
  • Level 3: 矩阵-矩阵操作 ($AB+C$),这是计算最密集且硬件效率最高的操作。
🎯 核心原理
数值线性代数通过齐次坐标将多种几何操作统一为矩阵-向量乘法 ($T(v) = Av$)。这使得硬件能够使用优化的 BLAS 函数,在保持结构完整性的前提下每秒处理数百万次运算。